A robot can be qualified as humanoid from the moment when it has certain human appearance attributes: a head, a trunk, two arms, two hands, etc. A humanoid robot may, however, be more or less sophisticated. Its limbs may have a greater or lesser number of articulations. It may control its own balance statically and dynamically and walk on two limbs, possibly in three dimensions, or simply roll over a base. It may pick up signals from the environment (“hear”, “see”, “touch”, “sense”, etc.) and react according to more or less sophisticated behaviors, and interact with other robots or humans, either by speech or by gesture.
A humanoid robot may navigate in a given environment just to go from a point A to a point B, or a according to a predefined scenario, or even execute a dance. There even may be a plurality of humanoid robots that collaborate in a choreography. In all these scenarios, it is important that the robots may cope with unexpected situations, for instance when obstacles come across their trajectory or the movements of their members. Also, it is more and more important to develop the impression that the robot is indeed humanoid that the robot be capable of coping with these unexpected situations in a human-like way, i.e. with smooth changes of trajectory or gestures to avoid collision instead of brisk changes of directions which denote a mechanical behavior. Also, when to avoid of collision a robot must change its trajectory or interrupt a gesture which was executed before the avoidance sequence, it is highly desirable to have the robot resume its previous trajectory or gestures, as a human would do.
In some solutions of the prior art, collision avoidance is mostly dealt with by putting the robot in a safety mode, either by commanding an abrupt stop or change in direction before collision. This is of course not a satisfactory user experience.
Another solution, provided notably by U.S. Pat. No. 7,778,776 consists in setting non-invasion or safety areas around obstacles and stopping the robot at a braking distance, or calculating an avoidance path. But this solution of the prior art is very computer intensive, since safety areas have to be calculated for all obstacles.